From: Keir Fraser Date: Wed, 28 Oct 2009 10:55:53 +0000 (+0000) Subject: x86: deny access to the ACPI PM timer I/O port range for Dom0 X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~13165 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22?a=commitdiff_plain;h=9119667be235cc7dcb67b76e71640fec0f434555;p=xen.git x86: deny access to the ACPI PM timer I/O port range for Dom0 Also move the declaration of pmtmr_ioport to a suitable header file. Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c index 121d1bae4c..e6cc2de6f2 100644 --- a/xen/arch/x86/acpi/boot.c +++ b/xen/arch/x86/acpi/boot.c @@ -332,10 +332,6 @@ static int __init acpi_parse_hpet(struct acpi_table_header *table) #define acpi_parse_hpet NULL #endif -#ifdef CONFIG_X86_PM_TIMER -extern u32 pmtmr_ioport; -#endif - #ifdef CONFIG_ACPI_SLEEP #define acpi_fadt_copy_address(dst, src, len) do { \ if (fadt->header.revision >= FADT2_REVISION_ID) \ diff --git a/xen/arch/x86/acpi/cpu_idle.c b/xen/arch/x86/acpi/cpu_idle.c index 61f294f7bc..35c2723582 100644 --- a/xen/arch/x86/acpi/cpu_idle.c +++ b/xen/arch/x86/acpi/cpu_idle.c @@ -56,7 +56,6 @@ static void lapic_timer_nop(void) { } static void (*lapic_timer_off)(void); static void (*lapic_timer_on)(void); -extern u32 pmtmr_ioport; extern void (*pm_idle) (void); extern void (*dead_idle) (void); extern void menu_get_trace_data(u32 *expected, u32 *pred); diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 06a285f231..a740791e56 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -29,6 +29,7 @@ #include #include #include +#include #include /* for bzimage_parse */ #include @@ -1064,6 +1065,9 @@ int __init construct_dom0( rc |= ioports_deny_access(dom0, 0x40, 0x43); /* PIT Channel 2 / PC Speaker Control. */ rc |= ioports_deny_access(dom0, 0x61, 0x61); + /* ACPI PM Timer. */ + if ( pmtmr_ioport ) + rc |= ioports_deny_access(dom0, pmtmr_ioport, pmtmr_ioport + 3); /* PCI configuration space (NB. 0xcf8 has special treatment). */ rc |= ioports_deny_access(dom0, 0xcfc, 0xcff); /* Command-line I/O ranges. */ diff --git a/xen/arch/x86/time.c b/xen/arch/x86/time.c index 06bf69f51d..982ce7ca52 100644 --- a/xen/arch/x86/time.c +++ b/xen/arch/x86/time.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include /* for early_time_init */ diff --git a/xen/include/asm-x86/acpi.h b/xen/include/asm-x86/acpi.h index b2bb9d9869..7666c2cfad 100644 --- a/xen/include/asm-x86/acpi.h +++ b/xen/include/asm-x86/acpi.h @@ -153,6 +153,8 @@ struct acpi_sleep_info { extern u8 x86_acpiid_to_apicid[]; #define MAX_LOCAL_APIC 256 +extern u32 pmtmr_ioport; + int acpi_dmar_init(void); void acpi_mmcfg_init(void);